home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / dev / gcc / geninline_920614.lha / inline-2.0 / icon.h < prev    next >
C/C++ Source or Header  |  1992-06-14  |  7KB  |  228 lines

  1. #ifndef _INLINE_ICON_H
  2. #define _INLINE_ICON_H
  3.  
  4. #include <sys/cdefs.h>
  5. #include <inline/stubs.h>
  6.  
  7. __BEGIN_DECLS
  8.  
  9. #ifndef BASE_EXT_DECL
  10. #define BASE_EXT_DECL extern struct Library * IconBase;
  11. #endif
  12. #ifndef BASE_PAR_DECL
  13. #define BASE_PAR_DECL
  14. #define BASE_PAR_DECL0 void
  15. #endif
  16. #ifndef BASE_NAME
  17. #define BASE_NAME IconBase
  18. #endif
  19.  
  20. static __inline BOOL 
  21. AddFreeList (BASE_PAR_DECL struct FreeList *freelist,APTR mem,unsigned long size)
  22. {
  23.   BASE_EXT_DECL
  24.   register BOOL  _res  __asm("d0");
  25.   register struct Library *a6 __asm("a6") = BASE_NAME;
  26.   register struct FreeList *a0 __asm("a0") = freelist;
  27.   register APTR a1 __asm("a1") = mem;
  28.   register unsigned long a2 __asm("a2") = size;
  29.   __asm __volatile ("jsr a6@(-0x48)"
  30.   : "=r" (_res)
  31.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  32.   : "a0","a1","a2","d0","d1");
  33.   *(char *)a0 = *(char *)a0;  *(char *)a1 = *(char *)a1;  *(char *)a2 = *(char *)a2;
  34.   return _res;
  35. }
  36. static __inline UBYTE *
  37. BumpRevision (BASE_PAR_DECL UBYTE *newname,UBYTE *oldname)
  38. {
  39.   BASE_EXT_DECL
  40.   register UBYTE * _res  __asm("d0");
  41.   register struct Library *a6 __asm("a6") = BASE_NAME;
  42.   register UBYTE *a0 __asm("a0") = newname;
  43.   register UBYTE *a1 __asm("a1") = oldname;
  44.   __asm __volatile ("jsr a6@(-0x6c)"
  45.   : "=r" (_res)
  46.   : "r" (a6), "r" (a0), "r" (a1)
  47.   : "a0","a1","d0","d1");
  48.   *(char *)a0 = *(char *)a0;  *(char *)a1 = *(char *)a1;
  49.   return _res;
  50. }
  51. static __inline BOOL 
  52. DeleteDiskObject (BASE_PAR_DECL UBYTE *name)
  53. {
  54.   BASE_EXT_DECL
  55.   register BOOL  _res  __asm("d0");
  56.   register struct Library *a6 __asm("a6") = BASE_NAME;
  57.   register UBYTE *a0 __asm("a0") = name;
  58.   __asm __volatile ("jsr a6@(-0x8a)"
  59.   : "=r" (_res)
  60.   : "r" (a6), "r" (a0)
  61.   : "a0","a1","d0","d1");
  62.   *(char *)a0 = *(char *)a0;
  63.   return _res;
  64. }
  65. static __inline UBYTE *
  66. FindToolType (BASE_PAR_DECL UBYTE **toolTypeArray,UBYTE *typeName)
  67. {
  68.   BASE_EXT_DECL
  69.   register UBYTE * _res  __asm("d0");
  70.   register struct Library *a6 __asm("a6") = BASE_NAME;
  71.   register UBYTE **a0 __asm("a0") = toolTypeArray;
  72.   register UBYTE *a1 __asm("a1") = typeName;
  73.   __asm __volatile ("jsr a6@(-0x60)"
  74.   : "=r" (_res)
  75.   : "r" (a6), "r" (a0), "r" (a1)
  76.   : "a0","a1","d0","d1");
  77.   *(char *)a0 = *(char *)a0;  *(char *)a1 = *(char *)a1;
  78.   return _res;
  79. }
  80. static __inline void 
  81. FreeDiskObject (BASE_PAR_DECL struct DiskObject *diskobj)
  82. {
  83.   BASE_EXT_DECL
  84.   register struct Library *a6 __asm("a6") = BASE_NAME;
  85.   register struct DiskObject *a0 __asm("a0") = diskobj;
  86.   __asm __volatile ("jsr a6@(-0x5a)"
  87.   : /* no output */
  88.   : "r" (a6), "r" (a0)
  89.   : "a0","a1","d0","d1");
  90.   *(char *)a0 = *(char *)a0;
  91. }
  92. static __inline void 
  93. FreeFreeList (BASE_PAR_DECL struct FreeList *freelist)
  94. {
  95.   BASE_EXT_DECL
  96.   register struct Library *a6 __asm("a6") = BASE_NAME;
  97.   register struct FreeList *a0 __asm("a0") = freelist;
  98.   __asm __volatile ("jsr a6@(-0x36)"
  99.   : /* no output */
  100.   : "r" (a6), "r" (a0)
  101.   : "a0","a1","d0","d1");
  102.   *(char *)a0 = *(char *)a0;
  103. }
  104. static __inline struct DiskObject *
  105. GetDefDiskObject (BASE_PAR_DECL long type)
  106. {
  107.   BASE_EXT_DECL
  108.   register struct DiskObject * _res  __asm("d0");
  109.   register struct Library *a6 __asm("a6") = BASE_NAME;
  110.   register long d0 __asm("d0") = type;
  111.   __asm __volatile ("jsr a6@(-0x78)"
  112.   : "=r" (_res)
  113.   : "r" (a6), "r" (d0)
  114.   : "a0","a1","d0","d1");
  115.   return _res;
  116. }
  117. static __inline struct DiskObject *
  118. GetDiskObject (BASE_PAR_DECL UBYTE *name)
  119. {
  120.   BASE_EXT_DECL
  121.   register struct DiskObject * _res  __asm("d0");
  122.   register struct Library *a6 __asm("a6") = BASE_NAME;
  123.   register UBYTE *a0 __asm("a0") = name;
  124.   __asm __volatile ("jsr a6@(-0x4e)"
  125.   : "=r" (_res)
  126.   : "r" (a6), "r" (a0)
  127.   : "a0","a1","d0","d1");
  128.   *(char *)a0 = *(char *)a0;
  129.   return _res;
  130. }
  131. static __inline struct DiskObject *
  132. GetDiskObjectNew (BASE_PAR_DECL UBYTE *name)
  133. {
  134.   BASE_EXT_DECL
  135.   register struct DiskObject * _res  __asm("d0");
  136.   register struct Library *a6 __asm("a6") = BASE_NAME;
  137.   register UBYTE *a0 __asm("a0") = name;
  138.   __asm __volatile ("jsr a6@(-0x84)"
  139.   : "=r" (_res)
  140.   : "r" (a6), "r" (a0)
  141.   : "a0","a1","d0","d1");
  142.   *(char *)a0 = *(char *)a0;
  143.   return _res;
  144. }
  145. static __inline LONG 
  146. GetIcon (BASE_PAR_DECL UBYTE *name,struct DiskObject *icon,struct FreeList *freelist)
  147. {
  148.   BASE_EXT_DECL
  149.   register LONG  _res  __asm("d0");
  150.   register struct Library *a6 __asm("a6") = BASE_NAME;
  151.   register UBYTE *a0 __asm("a0") = name;
  152.   register struct DiskObject *a1 __asm("a1") = icon;
  153.   register struct FreeList *a2 __asm("a2") = freelist;
  154.   __asm __volatile ("jsr a6@(-0x2a)"
  155.   : "=r" (_res)
  156.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  157.   : "a0","a1","a2","d0","d1");
  158.   *(char *)a0 = *(char *)a0;  *(char *)a1 = *(char *)a1;  *(char *)a2 = *(char *)a2;
  159.   return _res;
  160. }
  161. static __inline BOOL 
  162. MatchToolValue (BASE_PAR_DECL UBYTE *typeString,UBYTE *value)
  163. {
  164.   BASE_EXT_DECL
  165.   register BOOL  _res  __asm("d0");
  166.   register struct Library *a6 __asm("a6") = BASE_NAME;
  167.   register UBYTE *a0 __asm("a0") = typeString;
  168.   register UBYTE *a1 __asm("a1") = value;
  169.   __asm __volatile ("jsr a6@(-0x66)"
  170.   : "=r" (_res)
  171.   : "r" (a6), "r" (a0), "r" (a1)
  172.   : "a0","a1","d0","d1");
  173.   *(char *)a0 = *(char *)a0;  *(char *)a1 = *(char *)a1;
  174.   return _res;
  175. }
  176. static __inline BOOL 
  177. PutDefDiskObject (BASE_PAR_DECL struct DiskObject *diskObject)
  178. {
  179.   BASE_EXT_DECL
  180.   register BOOL  _res  __asm("d0");
  181.   register struct Library *a6 __asm("a6") = BASE_NAME;
  182.   register struct DiskObject *a0 __asm("a0") = diskObject;
  183.   __asm __volatile ("jsr a6@(-0x7e)"
  184.   : "=r" (_res)
  185.   : "r" (a6), "r" (a0)
  186.   : "a0","a1","d0","d1");
  187.   *(char *)a0 = *(char *)a0;
  188.   return _res;
  189. }
  190. static __inline BOOL 
  191. PutDiskObject (BASE_PAR_DECL UBYTE *name,struct DiskObject *diskobj)
  192. {
  193.   BASE_EXT_DECL
  194.   register BOOL  _res  __asm("d0");
  195.   register struct Library *a6 __asm("a6") = BASE_NAME;
  196.   register UBYTE *a0 __asm("a0") = name;
  197.   register struct DiskObject *a1 __asm("a1") = diskobj;
  198.   __asm __volatile ("jsr a6@(-0x54)"
  199.   : "=r" (_res)
  200.   : "r" (a6), "r" (a0), "r" (a1)
  201.   : "a0","a1","d0","d1");
  202.   *(char *)a0 = *(char *)a0;  *(char *)a1 = *(char *)a1;
  203.   return _res;
  204. }
  205. static __inline BOOL 
  206. PutIcon (BASE_PAR_DECL UBYTE *name,struct DiskObject *icon)
  207. {
  208.   BASE_EXT_DECL
  209.   register BOOL  _res  __asm("d0");
  210.   register struct Library *a6 __asm("a6") = BASE_NAME;
  211.   register UBYTE *a0 __asm("a0") = name;
  212.   register struct DiskObject *a1 __asm("a1") = icon;
  213.   __asm __volatile ("jsr a6@(-0x30)"
  214.   : "=r" (_res)
  215.   : "r" (a6), "r" (a0), "r" (a1)
  216.   : "a0","a1","d0","d1");
  217.   *(char *)a0 = *(char *)a0;  *(char *)a1 = *(char *)a1;
  218.   return _res;
  219. }
  220. #undef BASE_EXT_DECL
  221. #undef BASE_PAR_DECL
  222. #undef BASE_PAR_DECL0
  223. #undef BASE_NAME
  224.  
  225. __END_DECLS
  226.  
  227. #endif /* _INLINE_ICON_H */
  228.